home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / ARASAN_S.ZIP / SRCLIMT2.CPP < prev    next >
C/C++ Source or Header  |  1994-07-17  |  3KB  |  103 lines

  1. // Copyright 1994 by Jon Dart.  All Rights Reserved.
  2.  
  3. #include "srclimt2.h"
  4. #include <wpglob.h>
  5.  
  6. #define IDP_SEARCHTYPE 101
  7. #define IDP_NONE 102
  8. #define IDP_GAME_LIMIT 103
  9. #define IDP_TOURNAMENT 104
  10. #define IDP_MOVES_OR_PLY 108
  11. #define IDP_MINUTES 109
  12. #define IDP_PLY_TEXT 105
  13. #define IDP_MINUTES_TEXT 106
  14.  
  15. WPControlMap SecondaryLimitDialog::ControlMap[] = 
  16. {
  17.    cmRBgp( IDP_SEARCHTYPE, Search_Limit_Options, search_type, 3 )
  18.    cmEdit( IDP_MOVES_OR_PLY, Search_Limit_Options, move_or_ply )
  19.    cmEdit( IDP_MINUTES, Search_Limit_Options, time_limit )
  20.    cmEnd( IDP_SEARCHTYPE )
  21. };
  22.  
  23. SecondaryLimitDialog::SecondaryLimitDialog(WPWin *pwin, 
  24.   Search_Limit_Options *options)
  25. : initial_search_type(options->search_type),
  26.   WPDialogModal("SECONDARYLIMITS", pwin, ControlMap, options)
  27. {
  28.    createWin();         
  29. }
  30.  
  31. void SecondaryLimitDialog::initDlg()
  32. {
  33. // Note: the Windows++ getControl function appears not to return valid
  34. // data, at least when called from here, so we limit ourselves to direct
  35. // Windows calls
  36.    const HWND hDlg = getHwnd();
  37.    hPly_field = GetDlgItem(hDlg,IDP_MOVES_OR_PLY);
  38.    hPly_text = GetDlgItem(hDlg,IDP_PLY_TEXT);
  39.    hMinutes_field = GetDlgItem(hDlg,IDP_MINUTES);
  40.    hMinutes_text = GetDlgItem(hDlg,IDP_MINUTES_TEXT);
  41.    new_type(initial_search_type);
  42. }
  43.  
  44. void SecondaryLimitDialog::updateObject()
  45. {
  46.     WPDialog::updateObject();
  47. }
  48.  
  49. void SecondaryLimitDialog::updateScreen()
  50. {
  51.    WPDialog::updateScreen();
  52. }
  53.  
  54. void SecondaryLimitDialog::new_type(int srctype)
  55. {
  56.    assert(srctype < 4);
  57.    switch (srctype)
  58.    {
  59.      case 0: /* None */
  60.        ShowWindow(hMinutes_field,SW_HIDE);
  61.        ShowWindow(hMinutes_text,SW_HIDE);
  62.        ShowWindow(hPly_text, SW_HIDE);
  63.        ShowWindow(hPly_field, SW_HIDE);
  64.        break;
  65.     case 1: /* Game */
  66.        ShowWindow(hMinutes_field,SW_HIDE);
  67.        ShowWindow(hMinutes_text,SW_HIDE);
  68.        EnableWindow(hMinutes_text,FALSE);
  69.        ShowWindow(hPly_field,SW_NORMAL);
  70.        SetWindowText(hPly_text,"Minutes/Game");
  71.        ShowWindow(hPly_text, SW_NORMAL);
  72.        break;
  73.     case 2: /* Tournament */
  74.        ShowWindow(hMinutes_field,SW_SHOWNORMAL);
  75.        ShowWindow(hMinutes_text,SW_SHOWNORMAL);
  76.        EnableWindow(hMinutes_text,TRUE);
  77.        ShowWindow(hPly_field,SW_NORMAL);
  78.        ShowWindow(hPly_text, SW_NORMAL);
  79.        // show the label "Moves:" instead of "Ply:"
  80.        SetWindowText(hPly_text,"Moves:");
  81.        break;
  82.     }
  83. }
  84.  
  85. BOOL SecondaryLimitDialog::command(int id, WORD msg)
  86. {
  87.    switch (id) 
  88.    {
  89.    case IDP_NONE:
  90.      new_type(0);
  91.      break;
  92.    case IDP_GAME_LIMIT:
  93.      new_type(1);
  94.      break;
  95.    case IDP_TOURNAMENT:
  96.      new_type(2);
  97.      break;
  98.    default:
  99.      break;
  100.    }
  101.    return WPDialogModal::command(id, msg); 
  102. }
  103.